#! /usr/bin/env lua

--[[
第一个 lua 程序
第一个程序通常都是输出 ‘Hello world’
--]]

-- 输出语句
print("Hello world!")
print("I am huoty")

-- 全局变量
a = 1
print(a)
print(b)

-- 删除全局变量
a = nil  -- 表示一个无效值，条件表达式中为 False
print(a)

-- 测试数据类型
print(type(1))
print(type(1.0))
print(type(print))
print(type(type))
print(type(true))
print(type({}))
print(type(nil))

-- Boolean 值判断
print(type(true))
print(type(false))
print(type(nil))

if false or nil then
    print("存在真值")
else
    print("全为假值")
end

-- 字符串与块字符串
s = 'hello world'
s_chunk = [[
hello,
I am huoty
]]
print(s)
print(s_chunk)

-- 数字字符串会按数字进行运算
print("2"+ 6)
print("1" + "5.6")

-- 用 .. 连接字符串，并用 # 计算字符串的长度
print("aa" .. "bb")
print(#"")

-- 数组
print({"a", 'b', 'c', 'd'})

-- 全局 Table _G
print(_G)

-- 变量
-- 变量有三种类型：全局变量、局部变量、表中的域
-- 变量默认都为全局变量，除非用 local 关键字声明为局部变量
a = 5        -- 全局变量
local b = 5  -- 局部变量

function foo()
    c = 5        -- 全局变量
    local d = 6  -- 局部变量
end

print(a, b)
foo()
print(c, d)

-- 比较运算符
print(1 ~= 1, 1 ~= 2)  -- lua 中的不等于是 ~=

-- 忽略数组索引
t = {'a', 'b', 'c'}
for _, v in ipairs(t) do
    print(v)
end
